home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / e / amigae21b.lha / Amiga_E_v2.1b / Sources / Projects / gtb_example.e < prev    next >
Text File  |  1992-09-02  |  5KB  |  150 lines

  1. /* E Source generated by SRCGEN v0.1 for GadToolsBox 2.0 */
  2.  
  3. OPT OSVERSION=37
  4.  
  5. MODULE 'gadtools','libraries/gadtools','intuition/intuition',
  6.        'intuition/screens', 'intuition/gadgetclass', 'graphics/text'
  7.  
  8. ENUM NONE,NOCONTEXT,NOGADGET,NOWB,NOVISUAL,OPENGT,NOWINDOW,NOMENUS
  9.  
  10. DEF    project0wnd:PTR TO window,
  11.     project0menus,
  12.     project0glist,
  13.     infos:PTR TO gadget,
  14.     scr:PTR TO screen,
  15.     visual=NIL,
  16.     offx,offy,tattr
  17.  
  18. PROC setupscreen()
  19.   IF (gadtoolsbase:=OpenLibrary('gadtools.library',37))=NIL THEN RETURN OPENGT
  20.   IF (scr:=LockPubScreen('Workbench'))=NIL THEN RETURN NOWB
  21.   IF (visual:=GetVisualInfoA(scr,NIL))=NIL THEN RETURN NOVISUAL
  22.   offy:=scr.wbortop+Int(scr.rastport+58)-10
  23.   tattr:=['topaz.font',8,0,0]:textattr
  24. ENDPROC
  25.  
  26. PROC closedownscreen()
  27.   IF visual THEN FreeVisualInfo(visual)
  28.   IF scr THEN UnlockPubScreen(NIL,scr)
  29.   IF gadtoolsbase THEN CloseLibrary(gadtoolsbase)
  30. ENDPROC
  31.  
  32. PROC openproject0window()
  33.   DEF g:PTR TO gadget
  34.   IF (g:=CreateContext({project0glist}))=NIL THEN RETURN NOCONTEXT
  35.   IF (g:=CreateGadgetA(LISTVIEW_KIND,g,
  36.     [offx+16,offy+15,129,128,'',tattr,0,0,visual,0]:newgadget,
  37.     [GTLV_LABELS,NIL,
  38.      GTLV_SCROLLWIDTH,24,
  39.      GTLV_SHOWSELECTED,NIL,
  40.      NIL]))=NIL THEN RETURN NOGADGET
  41.   IF (g:=CreateGadgetA(MX_KIND,g,
  42.     [offx+166,offy+20,17,9,'',tattr,1,2,visual,0]:newgadget,
  43.     [GTMX_LABELS,['one','two','three',0],
  44.      GTMX_SPACING,2,
  45.      NIL]))=NIL THEN RETURN NOGADGET
  46.   IF (g:=CreateGadgetA(SCROLLER_KIND,g,
  47.     [offx+150,offy+61,315,27,'',tattr,2,0,visual,0]:newgadget,
  48.     [GA_RELVERIFY,1,
  49.      GTSC_TOTAL,20,
  50.      GTSC_VISIBLE,6,
  51.      GTSC_ARROWS,24,
  52.      NIL]))=NIL THEN RETURN NOGADGET
  53.   IF (g:=CreateGadgetA(CYCLE_KIND,g,
  54.     [offx+267,offy+15,196,21,'',tattr,3,0,visual,0]:newgadget,
  55.     [GTCY_LABELS,['option1','option2',0],
  56.      NIL]))=NIL THEN RETURN NOGADGET
  57.   IF (g:=CreateGadgetA(STRING_KIND,g,
  58.     [offx+268,offy+38,195,19,'',tattr,4,0,visual,0]:newgadget,
  59.     [GTST_MAXCHARS,256,
  60.      NIL]))=NIL THEN RETURN NOGADGET
  61.   IF (g:=CreateGadgetA(PALETTE_KIND,g,
  62.     [offx+149,offy+90,318,49,'',tattr,5,0,visual,0]:newgadget,
  63.     [GTPA_DEPTH,3,
  64.      GTPA_COLOR,1,
  65.      GTPA_COLOROFFSET,0,
  66.      NIL]))=NIL THEN RETURN NOGADGET
  67.   IF (project0menus:=CreateMenusA([1,0,'Project',0,$0,0,0,
  68.     2,0,'Load','o',$0,0,0,
  69.     2,0,'Save','w',$0,0,0,
  70.     2,0,'Quit','q',$0,0,0,
  71.     1,0,'Edit',0,$0,0,0,
  72.     2,0,'Cut','x',$0,0,0,
  73.     2,0,'Copy','c',$0,0,0,
  74.     2,0,'Paste','i',$0,0,0,
  75.     0,0,0,0,0,0,0]:newmenu,NIL))=NIL THEN RETURN NOMENUS
  76.   IF LayoutMenusA(project0menus,visual,NIL)=FALSE THEN RETURN NOMENUS
  77.   IF (project0wnd:=OpenWindowTagList(NIL,
  78.     [WA_LEFT,38,
  79.      WA_TOP,14,
  80.      WA_WIDTH,offx+491,
  81.      WA_HEIGHT,offy+147,
  82.      WA_IDCMP,$24C077E,
  83.      WA_FLAGS,$100E,
  84.      WA_TITLE,'Work Window',
  85.      WA_CUSTOMSCREEN,scr,
  86.      WA_MINWIDTH,67,
  87.      WA_MINHEIGHT,21,
  88.      WA_MAXWIDTH,$2D4,
  89.      WA_MAXHEIGHT,283,
  90.      WA_AUTOADJUST,1,
  91.      WA_AUTOADJUST,1,
  92.      WA_GADGETS,project0glist,
  93.      NIL]))=NIL THEN RETURN NOWINDOW
  94.   DrawBevelBoxA(project0wnd.rport,151,15,111,42,
  95.     [GT_VISUALINFO,visual,NIL])
  96.   IF SetMenuStrip(project0wnd,project0menus)=FALSE THEN RETURN NOMENUS
  97.   Gt_RefreshWindow(project0wnd,NIL)
  98. ENDPROC
  99.  
  100. PROC closeproject0window()
  101.   IF project0wnd THEN ClearMenuStrip(project0wnd)
  102.   IF project0menus THEN FreeMenus(project0menus)
  103.   IF project0wnd THEN CloseWindow(project0wnd)
  104.   IF project0glist THEN FreeGadgets(project0glist)
  105. ENDPROC
  106.  
  107. PROC wait4message(win:PTR TO window)
  108.   DEF mes:PTR TO intuimessage,type
  109.   REPEAT
  110.     type:=0
  111.     IF mes:=Gt_GetIMsg(win.userport)
  112.       type:=mes.class
  113.       IF type=IDCMP_MENUPICK
  114.         infos:=mes.code
  115.       ELSEIF (type=IDCMP_GADGETDOWN) OR (type=IDCMP_GADGETUP)
  116.         infos:=mes.iaddress
  117.       ELSEIF type=IDCMP_REFRESHWINDOW
  118.         Gt_BeginRefresh(win)
  119.         Gt_EndRefresh(win,TRUE)
  120.         type:=0
  121.       ELSEIF type<>IDCMP_CLOSEWINDOW /* remove these if you like */
  122.         type:=0
  123.       ENDIF
  124.       Gt_ReplyIMsg(mes)
  125.     ELSE
  126.       WaitPort(win.userport)
  127.     ENDIF
  128.   UNTIL type
  129. ENDPROC type
  130.  
  131. PROC reporterr(er)
  132.   DEF erlist:PTR TO LONG
  133.   IF er
  134.     erlist:=['get context','create gadget','lock wb','get visual infos',
  135.       'open "gadtools.library" v37+','open window','create menus']
  136.     EasyRequestArgs(0,[20,0,0,'Could not \s!','ok'],0,[erlist[er-1]])
  137.   ENDIF
  138. ENDPROC er
  139.  
  140. PROC main()
  141.   IF reporterr(setupscreen())=0
  142.     IF reporterr(openproject0window())=0
  143.       WHILE wait4message(project0wnd)<>IDCMP_CLOSEWINDOW DO NOP
  144.     ENDIF
  145.     closeproject0window()
  146.   ENDIF
  147.   closedownscreen()
  148. ENDPROC
  149.  
  150.